#include <stdio.h>
/*
把一个三位的整数分解成1-9的各位数，
第二三个参数类似是迭代器访问。
*/
void fun1(int x, int *begin, int *end)
{
    for (; begin != end; begin++)
    {
        *begin = x % 10;
        x /= 10;
    }
}
/*
判断9位数字是否各不相同。
如果9位数字都不相同，就返回1，反之返回0
*/
int fun(int x, int y, int z)
{
    int a[9], book[10] = {0};
    fun1(x, a, a + 3);
    fun1(y, a + 3, a + 6);
    fun1(z, a + 6, a + 9);
    for (int i = 0; i < 9; i++)
    {
        book[a[i]]++;
    }
    for (int i = 0; i < 10; i++)
    {
        if (book[i] > 1)
        {
            return 0;
        }
    }
    return 1;
}
/*
打印数组的函数
begin：数组开始的指针
end：数组结束的指针
例子：printArray(a,a+4);
*/
void printArray(int *begin, int *end)
{
    for (; begin != end; begin++)
        printf("%d ", *begin);
    printf("\n");
}
/*
优化啊哈算法的枚举坑爹的奥数
*/
int main()
{
    freopen("output.txt", "w", stdout);
    for (int i = 1; i <= 999; i++)
        for (int j = 1; j <= 999; j++)
            for (int k = 1; k <= 999; k++)
            {
                if (i + j == k && fun(i, j, k) == 1)
                    printf("%d+%d=%d\n", i, j, k);
            }
    return 0;
}